<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var a=10>9;//true
        var b=78<67;//false
        var c=a&&b;
        console.log(c);

        //逻辑运算符，也称之为短路运算符
        // &&与，并且,如果第一个为假就返回第一个表达式，否则返回第二个表达式
        console.log(true&&false);//false
        console.log(false&&true);//false
        console.log(true&&true);//true
        console.log(false&&false);//false
        console.log("aaa"&&false);//false
        console.log("aaa"&&89);//89
        console.log(78&&NaN);//NaN
        console.log(0&&100);//0


        //||或，或者，如果第一个为真就返回第一个表达式，否则返回第二个表达式
        console.log(true||false);//true
        console.log(false||true);//true
        console.log(false||false);//false
        console.log(true||true);//true
        console.log(0||100);//100
        console.log(78||"aaa");//78
        console.log(NaN||undefined);//undefined

        // 结论：
        //     只要是非0数字表示为真，只要是非空字符串表示为真
        //     0、""空字符串、undefined、null、NaN都表示为假

        // !非，取反
        var aa=89;
        console.log(!aa);
        console.log(!"bbb");
        console.log(!0);
        console.log(!"");

        // 运算的优先级:!>&&>||
        console.log("aaa"||"bbb"&&0);//aaa
        console.log(67&&"ccc"||false);//ccc
        console.log(!87||true&&98);//98
        console.log(!false&&89||"aaa");//89
    </script>
</head>
<body>
    
</body>
</html>